* Step 1: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [0]          
            p(active) = [1] x1 + [0] 
                 p(b) = [0]          
                 p(c) = [0]          
                 p(f) = [15]         
              p(mark) = [1] x1 + [0] 
                p(ok) = [1] x1 + [11]
            p(proper) = [1] x1 + [0] 
               p(top) = [1] x1 + [0] 
          
          Following rules are strictly oriented:
          top(ok(X)) = [1] X + [11]  
                     > [1] X + [0]   
                     = top(active(X))
          
          
          Following rules are (at-least) weakly oriented:
                      active(c()) =  [0]              
                                  >= [0]              
                                  =  mark(a())        
          
                      active(c()) =  [0]              
                                  >= [0]              
                                  =  mark(b())        
          
                f(X1,X2,mark(X3)) =  [15]             
                                  >= [15]             
                                  =  mark(f(X1,X2,X3))
          
          f(ok(X1),ok(X2),ok(X3)) =  [15]             
                                  >= [26]             
                                  =  ok(f(X1,X2,X3))  
          
                      proper(a()) =  [0]              
                                  >= [11]             
                                  =  ok(a())          
          
                      proper(b()) =  [0]              
                                  >= [11]             
                                  =  ok(b())          
          
                      proper(c()) =  [0]              
                                  >= [11]             
                                  =  ok(c())          
          
                     top(mark(X)) =  [1] X + [0]      
                                  >= [1] X + [0]      
                                  =  top(proper(X))   
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 2: MI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(mark(X)) -> top(proper(X))
        - Weak TRS:
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        MI {miKind = MaximalMatrix (UpperTriangular (Multiplicity Nothing)), miDimension = 1, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind MaximalMatrix (UpperTriangular (Multiplicity Nothing)):
        
        The following argument positions are considered usable:
          uargs(mark) = {1},
          uargs(ok) = {1},
          uargs(top) = {1}
        
        Following symbols are considered usable:
          {active,f,proper,top}
        TcT has computed the following interpretation:
               p(a) = [4]          
          p(active) = [1] x_1 + [0]
               p(b) = [2]          
               p(c) = [5]          
               p(f) = [8] x_1 + [5]
            p(mark) = [1] x_1 + [0]
              p(ok) = [1] x_1 + [0]
          p(proper) = [1] x_1 + [0]
             p(top) = [2] x_1 + [0]
        
        Following rules are strictly oriented:
        active(c()) = [5]      
                    > [4]      
                    = mark(a())
        
        active(c()) = [5]      
                    > [2]      
                    = mark(b())
        
        
        Following rules are (at-least) weakly oriented:
              f(X1,X2,mark(X3)) =  [8] X1 + [5]     
                                >= [8] X1 + [5]     
                                =  mark(f(X1,X2,X3))
        
        f(ok(X1),ok(X2),ok(X3)) =  [8] X1 + [5]     
                                >= [8] X1 + [5]     
                                =  ok(f(X1,X2,X3))  
        
                    proper(a()) =  [4]              
                                >= [4]              
                                =  ok(a())          
        
                    proper(b()) =  [2]              
                                >= [2]              
                                =  ok(b())          
        
                    proper(c()) =  [5]              
                                >= [5]              
                                =  ok(c())          
        
                   top(mark(X)) =  [2] X + [0]      
                                >= [2] X + [0]      
                                =  top(proper(X))   
        
                     top(ok(X)) =  [2] X + [0]      
                                >= [2] X + [0]      
                                =  top(active(X))   
        
* Step 3: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(mark(X)) -> top(proper(X))
        - Weak TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [5]                  
            p(active) = [1] x1 + [0]         
                 p(b) = [5]                  
                 p(c) = [7]                  
                 p(f) = [1] x2 + [9] x3 + [0]
              p(mark) = [1] x1 + [2]         
                p(ok) = [1] x1 + [0]         
            p(proper) = [1] x1 + [6]         
               p(top) = [1] x1 + [0]         
          
          Following rules are strictly oriented:
          f(X1,X2,mark(X3)) = [1] X2 + [9] X3 + [18]
                            > [1] X2 + [9] X3 + [2] 
                            = mark(f(X1,X2,X3))     
          
                proper(a()) = [11]                  
                            > [5]                   
                            = ok(a())               
          
                proper(b()) = [11]                  
                            > [5]                   
                            = ok(b())               
          
                proper(c()) = [13]                  
                            > [7]                   
                            = ok(c())               
          
          
          Following rules are (at-least) weakly oriented:
                      active(c()) =  [7]                  
                                  >= [7]                  
                                  =  mark(a())            
          
                      active(c()) =  [7]                  
                                  >= [7]                  
                                  =  mark(b())            
          
          f(ok(X1),ok(X2),ok(X3)) =  [1] X2 + [9] X3 + [0]
                                  >= [1] X2 + [9] X3 + [0]
                                  =  ok(f(X1,X2,X3))      
          
                     top(mark(X)) =  [1] X + [2]          
                                  >= [1] X + [6]          
                                  =  top(proper(X))       
          
                       top(ok(X)) =  [1] X + [0]          
                                  >= [1] X + [0]          
                                  =  top(active(X))       
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 4: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            top(mark(X)) -> top(proper(X))
        - Weak TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [1]          
            p(active) = [1] x1 + [0] 
                 p(b) = [1]          
                 p(c) = [4]          
                 p(f) = [1] x3 + [12]
              p(mark) = [1] x1 + [3] 
                p(ok) = [1] x1 + [0] 
            p(proper) = [1] x1 + [0] 
               p(top) = [1] x1 + [0] 
          
          Following rules are strictly oriented:
          top(mark(X)) = [1] X + [3]   
                       > [1] X + [0]   
                       = top(proper(X))
          
          
          Following rules are (at-least) weakly oriented:
                      active(c()) =  [4]              
                                  >= [4]              
                                  =  mark(a())        
          
                      active(c()) =  [4]              
                                  >= [4]              
                                  =  mark(b())        
          
                f(X1,X2,mark(X3)) =  [1] X3 + [15]    
                                  >= [1] X3 + [15]    
                                  =  mark(f(X1,X2,X3))
          
          f(ok(X1),ok(X2),ok(X3)) =  [1] X3 + [12]    
                                  >= [1] X3 + [12]    
                                  =  ok(f(X1,X2,X3))  
          
                      proper(a()) =  [1]              
                                  >= [1]              
                                  =  ok(a())          
          
                      proper(b()) =  [1]              
                                  >= [1]              
                                  =  ok(b())          
          
                      proper(c()) =  [4]              
                                  >= [4]              
                                  =  ok(c())          
          
                       top(ok(X)) =  [1] X + [0]      
                                  >= [1] X + [0]      
                                  =  top(active(X))   
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 5: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
        - Weak TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [0]                  
            p(active) = [1] x1 + [1]         
                 p(b) = [6]                  
                 p(c) = [8]                  
                 p(f) = [2] x1 + [1] x3 + [0]
              p(mark) = [1] x1 + [3]         
                p(ok) = [1] x1 + [1]         
            p(proper) = [1] x1 + [1]         
               p(top) = [1] x1 + [2]         
          
          Following rules are strictly oriented:
          f(ok(X1),ok(X2),ok(X3)) = [2] X1 + [1] X3 + [3]
                                  > [2] X1 + [1] X3 + [1]
                                  = ok(f(X1,X2,X3))      
          
          
          Following rules are (at-least) weakly oriented:
                active(c()) =  [9]                  
                            >= [3]                  
                            =  mark(a())            
          
                active(c()) =  [9]                  
                            >= [9]                  
                            =  mark(b())            
          
          f(X1,X2,mark(X3)) =  [2] X1 + [1] X3 + [3]
                            >= [2] X1 + [1] X3 + [3]
                            =  mark(f(X1,X2,X3))    
          
                proper(a()) =  [1]                  
                            >= [1]                  
                            =  ok(a())              
          
                proper(b()) =  [7]                  
                            >= [7]                  
                            =  ok(b())              
          
                proper(c()) =  [9]                  
                            >= [9]                  
                            =  ok(c())              
          
               top(mark(X)) =  [1] X + [5]          
                            >= [1] X + [3]          
                            =  top(proper(X))       
          
                 top(ok(X)) =  [1] X + [3]          
                            >= [1] X + [3]          
                            =  top(active(X))       
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 6: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^1))